package org.dxy.domain.event.equipment;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Value;
import org.dxy.domain.event.AggregateTypeEnum;
import org.dxy.domain.event.DomainEvent;

/**
 * 设备已注册事件
 * 该事件表示设备被首次登记到系统中，尚未启用，仅作为档案存在。
 * @author dxy
 * @createTime 2025/6/11 23:23
 */
@Value
@Builder
@AllArgsConstructor
public class EquipmentRegisteredEvent implements DomainEvent {
    /**
     * 设备唯一标识（主键）
     */
    Long equipmentId;

    /**
     * 设备类型
     */
    String equipmentType;

    /**
     * 设备序列号
     */
    String serialNumber;
    
    @Override
    public Long aggregateId() {
        return equipmentId;
    }
    
    @Override
    public String aggregateType() {
        return AggregateTypeEnum.EQUIPMENT.getKey();
    }
    
    @Override
    public String eventType() {
        return EquipmentEventTypeEnum.REGISTERED.getKey();
    }
}
